如何将Log转化为Metric及Nginx实例

您所在的位置:网站首页 log lg转换 如何将Log转化为Metric及Nginx实例

如何将Log转化为Metric及Nginx实例

2024-01-31 21:25| 来源: 网络整理| 查看: 265

如果您需要监控Log中某字段的指标变化趋势,可以使用日志服务数据加工函数e_to_metric将Log字段转换为Metric,通过时序库查看该指标的变化趋势。本文以Nginx访问日志为例说明如何将Log转化为Metric。

前提条件已采集到日志数据。更多信息,请参见数据采集。背景信息应用程序的运行数据,主要有Log、Trace和Metric这三大类数据。Log是离散的事件,Trace可以认为是带请求追踪的事件,Metric是带统计量的事件。Log、Trace、Metric本质上都是事件,满足事件存储的系统都可以用来存储这三类数据。日志服务提供两种存储:Logstore

日志服务中Log的采集、存储和查询单元。更多信息,请参见日志库(Logstore)。

MetricStore

日志服务中Metric的采集、存储和查询单元。日志服务MetricStore针对Metric做了大量优化,提供PromQL查询能力,支持Prometheus协议。更多信息,请参见时序库(MetricStore)。

很多应用的Log数据往往比Metric全面,Metric可以认为是特定格式的Log,因此在日志服务中可以将Log转换为Metric。常见的Log转Metric的方法如下:使用日志服务的定时SQL功能聚合日志产生指标。更多信息,请参见从Logstore到MetricStore。使用数据加工e_to_metric函数将Log转换为Metric。场景描述

某企业在华东1(杭州)地域创建了名为nginx-demo的Logstore,用于存储Nginx服务的访问日志。

该企业需要监控后端服务器(Host)的每次请求耗时(request_time)和响应耗时(upstream_response_time)变化情况,并通过仪表盘展示变化趋势。

body_bytes_sent:1750 host:www.example.com http_referer:www.guide.example.com http_user_agent:Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; it-it) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27 http_x_forwarded_for:203.0.113.10 remote_addr:203.0.113.10 remote_user:p288 request_length:13741 request_method:GET request_time:71 request_uri:/request/path-1/file-1 status:200 time_local:11/Aug/2021:06:52:27 upstream_response_time:0.66

为实现以上需求,您需要将Log中request_time和upstream_response_time字段转换为Metric,并打上Host标签。

步骤一:创建时序库

创建名称为service-metric的时序库,用于保存数据加工后的时序数据。

登录日志服务控制台。在Project列表区域,单击目标Project。在时序存储 > 时序库页签中,单击+图标。在创建MetricStore面板,配置如下参数,单击确定。参数说明MetricStore名称MetricStore名称在其所属Project内必须唯一,创建后不能修改。永久保存打开永久保存开关后,日志服务将永久保存采集到的时序数据。说明 通过SDK方式获取数据保存时间时,如果对应值为3650则表示永久保存。数据保存时间日志服务采集的时序数据在MetricStore中的保存时间,单位为天,取值范围:15~3000。警告 当日志保存时间达到您所设置的保存时间后,时序数据将被删除。

仅在未打开永久保存开关时,需设置数据保存时间。

重要 缩短数据保存时间后,日志服务将在1小时内删除所有已超过保存时间的数据。但日志服务控制台首页的存储量(日志)将于次日更新。例如您原本的数据保存时间为5天,现修改为1天,则日志服务将在1小时内删除前4天的数据。Shard数目日志服务使用Shard读写数据。一个Shard提供的写入能力为5 MB/s、500次/s,读取能力为10 MB/s、100次/s。每个MetricStore中最多创建10个Shard,每个Project中最多创建200个Shard。更多信息,请参见分区(Shard)。自动分裂Shard打开自动分裂Shard开关后,如果您写入的数据量超过已有Shard服务能力,日志服务会自动根据数据量增加Shard数量。更多信息,请参见管理Shard。最大分裂数打开自动分裂shard开关后,最多支持自动分裂至256个readwrite状态的Shard。步骤二:创建数据加工任务

使用e_to_metric函数创建数据加工任务,并保存加工后数据到步骤一创建的时序库。

进入数据加工页面。在Project列表区域,单击目标Project。在日志存储 > 日志库页签中,单击目标Logstore。在查询和分析页面,单击数据加工。在页面右上角,选择数据的时间范围。请确保在原始日志页签中有Log。在编辑框中,输入数据加工语句。将request_time字段重命名为RequestTime,upstream_response_time字段重命名为ResponseTime,并打上host标签。e_to_metric( names=[("request_time", "RequestTime"), ("upstream_response_time", "ResponseTime")], labels=[("host", "hostname")], )更多信息,请参见e_to_metric。单击预览数据。预览数据创建数据加工任务。单击保存数据加工。在创建数据加工任务面板,配置如下信息,然后单击确定。参数说明规则名称数据加工任务的名称。例如log2mectric。授权方式选择默认角色读取源Logstore数据。存储目标目标名称存储目标的名称。例如log2mectric。目标Region选择目标Project所在地域。例如华东1(杭州)。目标Project用于存储数据加工结果的目标Project名称。目标库用于存储数据加工结果的目标MetricStore名称。例如service-metric。授权方式选择择默认角色将数据加工结果写入目标时序库service-metric。加工范围时间范围时间范围选择所有。在创建结果对话框,单击确认。

以上步骤配置完成后,日志服务开始将Log加工到目标时序库service-metric。

步骤三:查询时序数据在左侧导航栏,选择时序存储 > 时序库。在时序库页签下发,选择目标时序库service-metric。在页面右上角,单击15分钟(相对),设置查询和分析的时间范围。您可以选择相对时间、整点时间和自定义时间范围。 说明 查询和分析结果相对于指定的时间范围来说,有1min以内的误差。在查询配置页签中,在Metrics下拉列表中,选择对应的监控项RequestTime或ReponseTime,单击预览。 每个Host的请求时间RequestTime变化趋势RequestTime 每个Host的响应时间ReponseTime变化趋势ReponseTime


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3